package com.example.excel.demo;

import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * <dependency>
 * * * <groupId>org.apache.poi</groupId>
 * * * <artifactId>poi</artifactId>
 * * * <version>4.1.2</version>
 * </dependency>
 * ---------
 * <p>
 * poi 坐标依赖 使用到的类 说明：
 * ---------
 * 工作簿 -- HSSFWorkbook
 * 工作表 -- HSSFSheet
 * 行 -- HSSFRow
 * 列 -- Cell
 */

// 数据写到Excel表，并把Excel表保存到本地磁盘中
public class ExcelWriteDemo { // Excel 的写

    // main() 方法
    public static void main(String[] args) {

        // 工作簿 -- HSSFWorkbook
        HSSFWorkbook workbook = new HSSFWorkbook();

        // 工作表 -- HSSFSheet （工作表 是在 工作簿 的基础上建立）
        HSSFSheet sheet = workbook.createSheet("所有人的工作表");

        // 行 -- HSSFRow  第 N 行， 从 0 开始  （工作表的行下标从 0 开始）
        HSSFRow rowHead = sheet.createRow(0);   // 创建一行

        // 列 -- Cell  第 N 列， 从 0 开始
        // 行列， 确定一个 cell  第 0 行 第 0 列 的数据是： 大牛编程
        rowHead.createCell(0).setCellValue("大牛编程");

        // 写入到硬盘 （我们使用到了流）

        // 文件位置 使用绝对路径 (使用了当前系统时间的时间戳做文件名称第一部分)
        String filePathName = "D:\\员工工作簿-" + System.currentTimeMillis() + ".xls";

        try {
            // IO，新建一个输出流对象
            FileOutputStream file = new FileOutputStream(filePathName);

            // 把 工作簿 -- HSSFWorkbook 的数据，写入
            workbook.write(file);   // 把工作簿中的内容写入到流中

            // 关闭工作簿写入
            workbook.close();

            System.out.println("写入完成！！！");

        } catch (IOException e) {
            System.out.println("写入失败！！！");
        }
    }

}